package net.sh.dpinfrastructure.util;

import java.util.HashSet;
import java.util.Set;

import org.apache.commons.lang3.ArrayUtils;


/**
 * 数组工具类
 * @author Lancer
 * @date 2015年8月22日下午4:28:14
 *
 */
public final class DPArrayUtils {
    
    private DPArrayUtils() {}

    /**
     * 比较两个数组，取出目标数组中不同于源数组的项
     * @author Lancer
     * @date 2015年8月22日下午4:30:38
     * @param originArray
     * @param targetArray
     * @return
     *
     */
    public static <T> Set<T> getDifferdElements(T[] originArray, T[] targetArray) {
        if (originArray == null || targetArray == null) {
            throw new NullPointerException();
        }
        Set<T> diffedElements = new HashSet<T>();
        for (T t : targetArray) {
            if (!ArrayUtils.contains(originArray, t)) {
                diffedElements.add(t);
            }
        }
        Math.abs(0);
        return diffedElements;
    }
    
    /**
     * 
     * 比较两个数组获取目标数组中所有被源数组包含的元素
     * Lancer
     * 2015年8月30日上午11:09:07
     * @param originArray
     * @param targetArray
     * @return
     *
     */
    public static  <T> Set<T> getContainedElements(T[] originArray, T[] targetArray) {
        if (originArray == null || targetArray == null) {
            throw new NullPointerException();
        }
        Set<T> containedElements = new HashSet<T>();
        for (T t : targetArray) {
            if (ArrayUtils.contains(originArray, t)) {
                containedElements.add(t);
            }
        }
        return containedElements;
    }
    
}
